Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

Enabled VSS4 support for Seat Service, fixed integration tests and DevContainer #103

Merged

Conversation

int0x27
Copy link
Contributor

@int0x27 int0x27 commented Oct 31, 2023

VSS 4.0 support in Seat Service

  • Using env variable VSS=3 forces VSS 3.0 compliant seat position. default: VSS=4
  • Implemented getting metadata from sdv::databroker::v1::Broker, CollectorClient renamed to KuksaClient
  • Added support for int arrays in createDatapoint()
  • broker_feeder example rewritten to actually work
  • Debug dumps enhanced (e.g., DBF_DEBUG=5 SEAT_DEBUG=5 will dump deserialized GRPC messages and statuses)
  • Fixed several bugs caught from new debugs e.g., Collector.UpdateDatapoints() returning OK with errors.
  • Improved DBF disconnection detection (previously didn't reconnect unless a feed is pending)
  • Added some shared functions in sdv::utils namespace
  • Added DataBrokerFeeder.Ready() function to check if we can actually feed data to databroker (connected, datapoints registered)
  • DBF checks if required metadata is available and if some datapoints are missing, tries to register all of them
  • Tried to address starvation in DBF process thread by busy feeding (broker feeder example)
  • Although updateDatapoint errors are Logged (e.g. wrong type), for the moment we ignore the error, because DBF will flood databroker with errors trying to resend all.

General changes

  • Added script for updating upstream KUKSA proto files: ./tools/update-kuksa-proto.sh
  • Reduced devcontainer image layer size to allow push in ttl.sh
  • hvac_service proto files regenerated from upstream proto files

Integration test changes for VSS 4.0

  • integration_test/update-protobuf.sh fixed and proto files updated from upstream
  • test_val_seat.py updated to detect VSS3/4 mode by env. variable USE_VSS3
  • Updated databroker container version to 0.4.1
  • Updated feedercan version to 0.4.1
  • Updated vscode scripts for feedercan, integration test, KUKSA client
  • Fixed vscode tasks to work with recent databroker releases (tar.gz packed in a .zip)
  • Removed KDB_OPT forcing VSS3.1 in integration
  • Removed gen_proto dummy package in integration tests (pytest needs custom path to work now)
  • Added Actuator target value support in VDBHelper
  • Added test for Actuator target set usecase in test_val_seat.py
  • Fixed test_feeder.py to use VSS4.0 compliant datapoints
  • Updated Tesla DBC from upstream, added DogMode signal
  • Updated dbc2val mapping (DogMode is optional as it will be missing in databroker by default)
  • Fixed it-config for new dbc2val properties

Copy link
Contributor

@erikbosch erikbosch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have not run tests, but did a quick review of the changes and saw nothing problematic

@int0x27 int0x27 force-pushed the feature/seatservice_vss4_support branch 4 times, most recently from 73847ca to 80ebc71 Compare November 7, 2023 11:38
@int0x27 int0x27 marked this pull request as ready for review November 7, 2023 12:26
- Using env variable VSS=3, VSS3 compliant seat position is forced. default: VSS=4
- Implemented getting metadata from sdv::databroker::v1::Broker, CollectorClient renamed to KuksaClient
- Added support for int arrays in createDatapoint()
- broker_feeder example rewritten to actually work
- debug dumps enhanced (e.g. DBF_DEBUG=5 SEAT_DEBUG=5 will dump deserialized GRPC messages and statuses)
- fixed several bugs caught from new debugs (e.g. Collector.UpdateDatapoints() returning OK with errors.
- Improved databrokerfeeder disconnection detection (previously didn't reconnect unless a feed is pending)
- Added some shared functions in sdv::utils namespace
- Added DataBrokerFeeder.Ready() function to check if we can actually feed data to databroker (connected, datapoints registered)
- dbf checks if required metadata is available and if some datapoints are missing, tries to register all of them
- tried to address starvation in DBF process thread by busy feeding (broker feeder example)
- Although updateDatapoint errors are Logged (e.g. wrong type), for the moment we ignore the error, because DBF will flood databroker with errors trying to resend all.


Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
- update-protobuf.sh fixed, also added "--force" argument to get proto files from kuksa.val master
- test_val_seat.py updated to detect VSS3/4 mode by env. variable "USE_VSS3"
- bumped databroker container version to 0.4.1
- fixed vscode tasks to work with recent databroker releases (tar.gz packed in a .zip)
- removed KDB_OPT forcing VSS3.1 in integration
- some megalinter suggestions applied
- fixed pip3 install usage

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
- Added script for updating upstream kuksa proto files: `/tools/update-kuksa-proto.sh`
- Removed "gen_proto" dummy package in integration tests (pytest needs custom path to work now)
- Added Actuator target value support in `VDBHelper`
- Added test for Actuator target set usecase in `test_val_seat.py`
- Fixed `test_feeder.py` to use VSS4.0 compliant datapoints
- Updated Tesla DBC from upstream, added DogMode signal
- Updated `dbc2val` mapping (DogMode is optional as it will be missing in databroker by default)
- Updated `feedercan` version to 0.4.1
- Fixed `it-config` for new `dbc2val` properties
- Updated vscode scripts for feedercan, integration test, kukca client
- Reduced devcontainer image layer size to allow push in ttl.sh

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
@int0x27 int0x27 force-pushed the feature/seatservice_vss4_support branch from 5cc2400 to 24f1dca Compare November 7, 2023 19:00
- Improved python3.9+ detection in run-feedercan.sh
- Added comment about pinned cobertura-action revision in github actions

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
to speedup codespaces startup

- added missing 'file' command for seat service scripts

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
- python binary was missing and failed hvac testcase
- added required 'file' package that was missing in devcontainer
- removed `dbcfeeder=debug` from `it-config`, as it was too spammy
- added `feedercan.imageVersion` to `prerequisite_settings.json` - used for container version, while `feedercan.version` is used for standalone (dapr) testing
- added most of the packages installed from devcontainer Dockerfile to tools/Devcontainer to optimize codespace startup

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
@int0x27 int0x27 changed the title Enabled VSS4 support for seat service (VSS3 optional) Enabled VSS4 support for Seat Service, fixed integration tests and DevContainer Nov 8, 2023
@int0x27
Copy link
Contributor Author

int0x27 commented Nov 8, 2023

You can test local / container integration tests in codespaces: https://github.com/codespaces/new/eclipse/kuksa.val.services/pull/103?resume=1

  • wait for codespace initialization
  • press F1
  • type Tasks: Run Task
  • Select integration-test (containers) or integration-test (local)

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
- added `--pack` and `--help` arguments to seat_service/build_release.sh and seat_service/build_debug.sh
- fixed readmes
- fixed build-debug.sh to use proper toolchain

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
- applied formatting patches

Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
Signed-off-by: Ivan Kirchev <Ivan.Kirchev@bosch.com>
Copy link
Contributor

@SebastianSchildt SebastianSchildt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An all around renovation of some old tests and workflows.
Also seat server compatibility with VSS4. lgtm

@SebastianSchildt SebastianSchildt merged commit 8041412 into eclipse-kuksa:main Nov 15, 2023
19 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants